$ngx-img-width: 100% !default;
$ngx-img-height: 200px !default;
$ngx-img-font-family: "Helvetica", "Arial" !default;
$ngx-img-font-weight: 300 !default;
$ngx-img-font-size: 14px !default;
$ngx-img-line-height: 22px !default;
$ngx-img-text-color: #777 !default;
$ngx-img-icon-color: #ccc !default;
$ngx-img-background: #fff !default;
$ngx-img-border-size: 2px !default;
$ngx-img-border-color: #e5e5e5 !default;
$ngx-img-infos-background: transparentize(#000, 0.3) !default;
$ngx-img-infos-color: #fff !default;
$ngx-img-clear-color: #fff !default;
$ngx-img-error-color: #f44336 !default;
$ngx-img-primary-color: #17a2c4 !default;
$ngx-img-stripes: #f6f6f6 !default;
$ngx-img-loader-size: 20px !default;
$ngx-img-loader-border: 1px !default;
$ngx-img-loader-fill: #ccc !default;
$ngx-img-loader-trace: #777 !default;

.ngx-img-crop-wrapper {
    display: flex;
    justify-content: stretch;
    align-items: stretch;
    position: relative;
    cursor: pointer;
    overflow: hidden;
    width: 100%;
    max-width: 100%;
    height: 400px;
    font-family: Helvetica, Arial, sans-serif;
    font-size: 14px;
    font-weight: 300;
    line-height: 22px;
    color: #333;
    background-color: #fff;
    background-image: none;
    text-align: center;
    border: 2px solid #e5e5e5;
    box-sizing: content-box;

    .ngx-img-clear {
        display: block;
        position: absolute;
        opacity: 0;
        z-index: 7;
        top: 10px;
        right: 10px;
        background: none;
        border: 2px solid $ngx-img-clear-color;
        text-transform: uppercase;
        font-family: $ngx-img-font-family;
        font-size: 11px;
        padding: 4px 8px;
        font-weight: bold;
        color: $ngx-img-clear-color;
        transition: all 0.15s linear;

        &:hover {
            background: transparentize($ngx-img-clear-color, 0.8);
        }
    }

    &:hover {
        .ngx-img-clear {
            opacity: 1;
        }
    }

    .ngx-img-crop-col {
        display: flex;
        flex: 1;
        margin: 5px;
        box-sizing: content-box;

        > img {
            position: relative;
            max-width: 100%;
            max-height: 100%;
        }

        .cropper-container {
            direction: ltr;
            font-size: 0;
            line-height: 0;
            position: relative;
            -ms-touch-action: none;
            touch-action: none;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }

        .cropper-container img {
            display: block;
            height: 100%;
            image-orientation: 0deg;
            max-height: none !important;
            max-width: none !important;
            min-height: 0 !important;
            min-width: 0 !important;
            width: 100%;
        }

        .cropper-wrap-box,
        .cropper-canvas,
        .cropper-drag-box,
        .cropper-crop-box,
        .cropper-modal {
            bottom: 0;
            left: 0;
            position: absolute;
            right: 0;
            top: 0;
        }

        .cropper-wrap-box,
        .cropper-canvas {
            overflow: hidden;
        }

        .cropper-drag-box {
            background-color: #fff;
            opacity: 0;
        }

        .cropper-modal {
            background-color: #000;
            opacity: 0.5;
        }

        .cropper-view-box {
            display: block;
            height: 100%;
            outline-color: rgba(51, 153, 255, 0.75);
            outline: 1px solid $ngx-img-primary-color;
            overflow: hidden;
            width: 100%;
        }

        .cropper-dashed {
            border: 0 dashed #eee;
            display: block;
            opacity: 0.5;
            position: absolute;
        }

        .cropper-dashed.dashed-h {
            border-bottom-width: 1px;
            border-top-width: 1px;
            height: 33.33333%;
            left: 0;
            top: 33.33333%;
            width: 100%;
        }

        .cropper-dashed.dashed-v {
            border-left-width: 1px;
            border-right-width: 1px;
            height: 100%;
            left: 33.33333%;
            top: 0;
            width: 33.33333%;
        }

        .cropper-center {
            display: block;
            height: 0;
            left: 50%;
            opacity: 0.75;
            position: absolute;
            top: 50%;
            width: 0;
        }

        .cropper-center:before,
        .cropper-center:after {
            background-color: #eee;
            content: " ";
            display: block;
            position: absolute;
        }

        .cropper-center:before {
            height: 1px;
            left: -3px;
            top: 0;
            width: 7px;
        }

        .cropper-center:after {
            height: 7px;
            left: 0;
            top: -3px;
            width: 1px;
        }

        .cropper-face,
        .cropper-line,
        .cropper-point {
            display: block;
            height: 100%;
            opacity: 0.1;
            position: absolute;
            width: 100%;
        }

        .cropper-face {
            background-color: #fff;
            left: 0;
            top: 0;
        }

        .cropper-line {
            background-color: $ngx-img-primary-color;
        }

        .cropper-line.line-e {
            cursor: e-resize;
            right: -3px;
            top: 0;
            width: 5px;
        }

        .cropper-line.line-n {
            cursor: n-resize;
            height: 5px;
            left: 0;
            top: -3px;
        }

        .cropper-line.line-w {
            cursor: w-resize;
            left: -3px;
            top: 0;
            width: 5px;
        }

        .cropper-line.line-s {
            bottom: -3px;
            cursor: s-resize;
            height: 5px;
            left: 0;
        }

        .cropper-point {
            background-color: $ngx-img-primary-color;
            height: 5px;
            opacity: 0.75;
            width: 5px;
        }

        .cropper-point.point-e {
            cursor: e-resize;
            margin-top: -3px;
            right: -3px;
            top: 50%;
        }

        .cropper-point.point-n {
            cursor: n-resize;
            left: 50%;
            margin-left: -3px;
            top: -3px;
        }

        .cropper-point.point-w {
            cursor: w-resize;
            left: -3px;
            margin-top: -3px;
            top: 50%;
        }

        .cropper-point.point-s {
            bottom: -3px;
            cursor: s-resize;
            left: 50%;
            margin-left: -3px;
        }

        .cropper-point.point-ne {
            cursor: ne-resize;
            right: -3px;
            top: -3px;
        }

        .cropper-point.point-nw {
            cursor: nw-resize;
            left: -3px;
            top: -3px;
        }

        .cropper-point.point-sw {
            bottom: -3px;
            cursor: sw-resize;
            left: -3px;
        }

        .cropper-point.point-se {
            bottom: -3px;
            cursor: se-resize;
            height: 20px;
            opacity: 1;
            right: -3px;
            width: 20px;
        }

        @media (min-width: 768px) {
            .cropper-point.point-se {
                height: 15px;
                width: 15px;
            }
        }

        @media (min-width: 992px) {
            .cropper-point.point-se {
                height: 10px;
                width: 10px;
            }
        }

        @media (min-width: 1200px) {
            .cropper-point.point-se {
                height: 5px;
                opacity: 0.75;
                width: 5px;
            }
        }

        .cropper-point.point-se:before {
            background-color: $ngx-img-primary-color;
            bottom: -50%;
            content: " ";
            display: block;
            height: 200%;
            opacity: 0;
            position: absolute;
            right: -50%;
            width: 200%;
        }

        .cropper-invisible {
            opacity: 0;
        }

        .cropper-hide {
            display: block;
            height: 0;
            position: absolute;
            width: 0;
        }

        .cropper-hidden {
            display: none !important;
        }

        .cropper-move {
            cursor: move;
        }

        .cropper-crop {
            cursor: crosshair;
        }

        .cropper-disabled .cropper-drag-box,
        .cropper-disabled .cropper-face,
        .cropper-disabled .cropper-line,
        .cropper-disabled .cropper-point {
            cursor: not-allowed;
        }
    }
}
